#-*- coding: utf-8 -*-
#autor: 11236 6039
#data: 3 de outubro de 2014
#obs.: aula3
#



def calc_total_media():
	c=0
	d1 = lista1()
	total_media=0.0
	for valor in d1.itervalues():
			total_media += valor
			c += 1
	return total_media

def mod1():
#1
	
	c=len(lista1())
	media = 0.0
	total_media1=calc_total_media()
	total_media1 /=c
	
	return total_media1
	
def lista1():
	return {'Programacao 1' : 15 ,'Programacao 2' : 13 ,'Matematica' : 12 ,'Linguagens de Programacao' : 17, 'Sistemas Operativos' :14}	
	
def mod2():

	import random
	def gerar_medias():
		yield random. randint(0,20)  
	
	def valor_nota():
		media1=99					
		media2=total_media
		c1=c
		
		while (media1 <12) or (media1 >16):
			media2=total_media
			c1=c
			for y in gerar_medias():
				media2 +=y
				c1+=1
			media2 /= c1
			media1=media2
		return y	
	
	d3= [] 
	total_media=calc_total_media()
	c=len(lista1())
	
	for i in range(3):
		d3.append(valor_nota())
		total_media+=d3[i]
		c+=1
	d2 = lista1()

	d2 [ 'att' ] = d3[0]			
	d2 [ 'direito' ] = d3[1]
	d2 [ 'algebra' ] = d3[2]
	

	for chave, valor in d2.iteritems():
		print chave, valor

	total_media=0.0
	c=0
	for valor in d2.itervalues():
		total_media += valor
		c += 1
	media= total_media
	media /=c

	return "media = ", media





#4
def mod4():
	
	media_rec=0
	d2=lista1()
	b=[] 
	for valor in d2.itervalues():
		b.append(valor)

	def contagem_recursiva(a,total1=0.0):
	
		if a==0:
			media_rec = total1/len(d2)
			print media_rec
			
		
		else:
			total1 += b[a-1]
		
			contagem_recursiva(a-1,total1)
	
	contagem_recursiva(len(d2))	
	



def criar_lista():
	lista =[]

	from random import *

	for i in range (0,1000):
		lista.append((randint(0, 10)))
	return lista

#5
def mod5():
	lista =[]
	lista =criar_lista()

	
	conj1 = set ( lista )
	return conj1


#6
def mod6():
	lista =[]
	lista =criar_lista()
	from collections import Counter
	a=Counter(lista)
	return a
